Управление сетевыми папками

Права доступа на новую папку

Для общих папок обязательны следующие параметры, настраиваемые на портале управления ALD Pro (Роли и службы сайта-Общий доступ к файлам-Сервер-Папка)- на примере папки shared_folder:

[shared_folder]
path = /opt/samba_shares/shared_folder
map archive = no
browseable = yes
writable = yes
valid users = @NOBODY
invalid users =
read list =
write list =
admin users =

Для того, чтобы при создании новых файлов владельцу не устанавливался флаг Execute, нужно отключить сопоставление DOS атрибута Archive с помощью параметра «map archive = no».

Значения NOBODY для списка valid users указывается, когда нет списка пользователей, которым открыт доступ к папке. Это необходимо в целях ограничения доступа пользователей к ресурсу.

[shared_folder]
path = /opt/samba_shares/shared_folder
browseable = yes
valid users = @admin

Уровень «Чтение» - viewer

Чтобы пользователям группы назначить доступ на чтение, их необходимо включить в списки valid users и read list. А группу NOBODY удалить. Пример для группы viewers:

[shared_folder]
path = /opt/samba_shares/shared_folder
browseable = yes
writable = yes
valid users = @viewers
invalid users =
read list = @viewers
write list =
admin users =

Пользователь видит папку, но доступа на создание, редактирование и удаление нет.

Уровень «Полный доступ» - fullcontrol

Чтобы пользователям/группам назначить полный административный доступ (Root доступ), их необходимо включить в списки valid users, admin users и write list. Это позволит действовать на файловом сервере от имени root в обход списков доступа файловой системы.

[shared_folder]
path = /opt/samba_shares/shared_folder
browseable = yes
writable = yes
valid users = @viewers @admins
invalid users =
read list = @viewers
write list = @admins
admin users = @admins

Пользователь видит папку, есть доступы на создание, редактирование и удаление.

Уровень «Изменение и назначение прав» - editor

Чтобы пользователям группы были назначены права на запись и на изменение прав доступа к объектам, их необходимо включить в списки valid users и write list. Пример для группы editors:

[shared_folder]
path = /opt/samba_shares/shared_folder
browseable = yes
writable = yes
valid users = @viewers @admins @editors
invalid users =
read list = @viewers
write list = @admins @editors
admin users = @admins

Уровень «Доступ запрещен» - invalid

Чтобы пользователям группы запретить доступ к ресурсу, их необходимо включить в список invalid users. Пример для группы guests:

[shared_folder]
path = /opt/samba_shares/shared_folder
browseable = yes
writable = yes
valid users = @viewers @admins @editors
invalid users = @guests
read list = @viewers
write list = @admins @editors
admin users = @admins

Пользователь не видит папку, соответственно доступов на создание, редактирование и удаление нет.

Дополнительные параметры

В свойствах сетевой папки присутствуют параметры Тип виртуальной файловой системы, Права доступа для новых файлов, Права доступа для новых папок и Наследование прав доступа.

Дополнительный параметр «Тип виртуальной файловой системы»

В настройки общей сетевой папки присутствует переключатель «Тип виртуальной файловой системы» со следующими значениями:

POSIX ACL — использование стандартных механизмов POSIX ACL без подключения дополнительных модулей виртуальной файловой системы, что обеспечивает полную поддержку Linux и базовую совместимость с Windows. При выборе этого типа виртуальной файловой системы параметр vfs objects не должен содержать модулей ACL:

[shared_folder]
...
vfs objects =

ACL XATTR — подключение модуля acl_xattr, который обеспечивает хранение Windows ACL, используя базовые механизмы POSIX ACL, что обеспечивает максимально возможную совместимость моделей безопасности Linux и Windows. При выборе этого типа виртуальной файловой системы параметр vfs objects должен содержать модуль acl_xattr:

[shared_folder]
...
vfs objects = acl_xattr

NFS4 ACLs — подключение модуля nfs4acl_xattr, который хранит списки доступа NFS4 в виде бинарных объектов в расширенных атрибутах файлов (EAs/xattrs), что обеспечивает полную поддержку Windows без поддержки Linux. При выборе этого типа виртуальной файловой системы параметр vfs objects должен содержать модуль nfs4acl_xattr:

[shared_folder]
...
vfs objects = nfs4acl_xattr

Дополнительный параметр «Права доступа для новых файлов и папок»

При создании новых файлов/папок через SMB подключение им назначаются права доступа «rw-r–r–» и «rwxr-xr-x» соответственно, что подходит для личных папок, но не подходит для общих папок, которые используются для совместной работы, поэтому в настройки сетевой папки необходимо добавить переключатель «Права доступа на файлы/папки» со следующими значениями:

  • Права на файлы — устанавливает параметр force create mode, по умолчанию 0777

  • Права на папки — устанавливает параметр force directory mode, по умолчанию 0777

Дополнительный флажок «Наследовать права доступа»

Если необходимо управлять правами доступа через механизм наследования, то в настройки сетевой папки добавляется флажок «Наследовать права доступа». Если этот флажок включен, то значения параметров force create mode и force directory mode игнорируются, поэтому соответствующие поля можно делать неактивными.

При установке флажка «Наследовать права доступа» в конфигурационном файле smb.conf должны быть заданы следующие параметры:

[hared_folder]
...
inherit permissions = yes
inherit acls = yes

Управление папками

При удалении общей папки, локальная папка остается.

  • path: указывает на директорию на сервере Samba, которая будет доступна по сети. Если изменить этот параметр, сетевая папка будет указывать на другую локальную папку. Если по пути локальной папки нет, то она создастся

Пример:

path = /home/samba/shared
  • browseable: определяет, будет ли эта папка доступна для просмотра в браузерах сетевых ресурсов (например, в проводнике Windows).

Значения: yes: папка будет доступна для просмотра. no: папка будет скрыта.

Пример:

browseable = yes
  • access based share enum (ABE): позволяет создавать правила доступа к папке на основе пользователей и групп. Например, можно разрешить только чтение для определенной группы, а другим - запись.

Значения: yes: ABE включен. no: ABE отключен.

Пример:

access based share enum = yes
  • vfs objects: список модулей, которые расширяют функциональность Samba. Например, модуль streams_xattr позволяет работать с расширенными атрибутами файлов.

Пример:

vfs objects = streams_xattr
  • force directory mode: устанавливает режим доступа (права) для всех новых подкаталогов, создаваемых в данной папке.

Значения: Число, представляющее собой режим доступа в восьмеричной системе счисления.

Пример:

force directory mode = 0755 (чтение, запись для владельца, чтение для группы, чтение для других)
  • force create mode: устанавливает режим доступа для всех новых файлов, создаваемых в данной папке.

Значения: Число, представляющее собой режим доступа в восьмеричной системе счисления.

Пример:

force create mode = 0644 (чтение, запись для владельца, чтение для группы, чтение для других)
  • inherit permissions: указывает, будут ли права доступа к файлам и папкам наследуемы от родительской папки.

Значения: yes: права наследуются. no: права не наследуются.

Пример:

inherit permissions = yes
  • inherit acls: указывает, будут ли ACL (списки управления доступом) наследуемы от родительской папки.

Значения: yes: ACL наследуются. no: ACL не наследуются.

Пример:

inherit acls = yes

Аутентификация

Начиная с версии 2.4.0 passdb backend больше не используется. Теперь конфигурация Samba генерируется по шаблону:

[global]
workgroup = c-1.ald.company.lan
realm = c-1.ald.company.lan
dedicated keytab file = FILE:/etc/samba/samba.keytab
kerberos method = dedicated keytab
idmap config c-1 : 1457400000-1457599999
idmap config c-1 : backend = sss
idmap config * : range = 0 - 0
log file = /var/log/samba/log.%m
include = registry
include = /etc/samba/share.conf
[homes]
browsable = yes
writable = yes
create mask = 0600
directory mask = 0700
valid users = %S
read only = No
guest ok = no

где: - c-1 - это значение до первой точке в имени домена в верхнем регистре.

  • 1457400000-1457599999 - это диапазон id. Он считается по формуле из атрибутов записи cn=c-1.ald.company.lan_id_range,cn=ranges,cn=etc,dc=c-1,dc=ald,dc=company,dc=lan:

  • первое число - ipaBaseID

  • второе число - ipaBaseID + ipaIDRangeSize - 1

  • include = registry - активирует работу регистра. позволяет переопределять в нем конфигурации

  • include = /etc/samba/share.conf - подключает конфигурационный файл, в который пишется конфигурация.